﻿<%@ Page Language="C#" MasterPageFile="~/MasterPages/MasterPage.Master" AutoEventWireup="true" 
CodeBehind="Vacantes.aspx.cs" Inherits="WebSite.Empresa.Vacantes" Title="Vacantes" MaintainScrollPositionOnPostback="true" %>
         
<asp:Content ID="Content_Header" ContentPlaceHolderID="ContentPlaceHolder_Header" runat="server">
    <div id="SignOutDiv">
        <asp:Button ID="Button_LogOff" runat="server" Text="Salir" 
            onclick="Button_LogOff_Click" CausesValidation="False" />
    </div>
</asp:Content>

<asp:Content ID="Content_Sidebar" ContentPlaceHolderID="ContentPlaceHolder_Sidebar" runat="server">
    <li><a href="Perfil.aspx">Mi Perfil</a></li>
    <li><a href="Vacantes.aspx">Vacantes</a></li>
    <li><a href="Aplicaciones.aspx">Aplicaciones</a></li>
    <li><a href="VerEgresados.aspx">Ver Egresados <br /> y Estudiantes</a></li>
</asp:Content>

<asp:Content ID="Content_Content" ContentPlaceHolderID="ContentPlaceHolder_Content" runat="server">
    <div class="Header2">
            Vacantes activas           
            <%--↓↕▲--%>
            <asp:Button ID="Button_MostrarPanelVacantesActivas" runat="server" Text="▼" 
                onclick="Button_MostrarPanelVacantesActivas_Click" 
                CausesValidation="False" />   
    </div>	   
    <asp:Panel ID="Panel_VacantesActivas" runat="server" Visible="false">
        <br />
        <asp:GridView ID="GridView_VacantesActivas" runat="server" 
            AutoGenerateColumns="False"  
            onselectedindexchanged="GridView_VacantesActivas_SelectedIndexChanged" 
            DataKeyNames="ID">
            <Columns>
                <asp:BoundField DataField="ID" ReadOnly="True" Visible="false" />
                <asp:TemplateField HeaderText="Puesto">
                    <ItemTemplate>
                        <%# EvaluateIfPuestoEqualsNull() %>
                    </ItemTemplate>
                </asp:TemplateField>                
                <asp:BoundField DataField="Descripcion" HeaderText="Descripción" ReadOnly="True" SortExpression="Descripcion" />
                <asp:BoundField DataField="FechaPublicacion" HeaderText="Fecha de Publicacion" SortExpression="FechaPublicacion" />              
            </Columns>
            <EmptyDataTemplate>
                <asp:Label ID="Label_NoVacantesActivas" runat="server" SkinID="MensajeError" Text="No hay vacantes activas" Visible="true"></asp:Label>
            </EmptyDataTemplate>
        </asp:GridView>
        <br />
        <div class="center">
            <asp:Button ID="Button_CerrarVacante" runat="server" Text="Cerrar vacante" 
                Enabled="False" OnClick="Button_CerrarVacante_Click" 
                EnableViewState="False" />
            <br />
            <asp:Label ID="Label_MensajeErrorCerrarVacante" runat="server" Text="Intente cerrar esta vacante luego"
                SkinID="MensajeError" Visible="False"></asp:Label>
        </div>    
        <asp:Panel ID="Panel_DatosVacante" runat="server" Visible="false" EnableViewState="false">
            <h4>Datos de Vacante</h4>
            <asp:GridView ID="GridView_DatosVacante" runat="server" AutoGenerateColumns="False"
                DataSourceID="LinqDataSource_DatosVacante" EnableTheming="false" SkinID="Summary"
                OnRowDataBound="GridView_DatosVacante_RowDataBound">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <h5 class="DatosVacanteHR">
                                Publicante</h5>
                            <div class="center">
                                <asp:Image ID="Image_LogoEmpresa" runat="server" SkinID="Avatar" />
                                <br />
                                <%# Eval("Empresa.Nombre")%>
                            </div>
                            <h5 class="DatosVacanteHR">
                                Puesto</h5>
                            <%# EvaluateIfPuestoEqualsNull() %>
                            <h5 class="DatosVacanteHR">
                                Descripción</h5>
                            <%# Eval("Descripcion")%>
                            <h5 class="DatosVacanteHR">
                                Carrera</h5>
                            <%# Eval("Carrera.Descripcion")%>
                            <h5 class="DatosVacanteHR">
                                Habilidades requeridas</h5>
                            <asp:ListBox ID="ListBox_DatosVacanteHabilidades" runat="server" DataSourceID="LinqDataSource_DatosVacanteHabilidades"
                                DataTextField="Descripcion" Width="300px"></asp:ListBox>
                            <asp:Label ID="Label_DatosVacanteNoHabilidades" runat="server" SkinID="MensajeError"
                                Text="No Especificado" Visible="false"></asp:Label>
                            <h5 class="DatosVacanteHR">
                                Postgrados requeridos</h5>
                            <asp:ListBox ID="ListBox_DatosVacanteEspecialidades" runat="server" DataSourceID="LinqDataSource_DatosVacanteEspecialidades"
                                DataTextField="Descripcion" Width="300px"></asp:ListBox>
                            <asp:Label ID="Label_DatosVacanteNoPostgrados" runat="server" SkinID="MensajeError"
                                Text="No Especificado" Visible="false"></asp:Label>
                            <br />
                            <br />
                            <hr class="DatosVacanteHR" />
                            <span>Esta vacante ha estado en el sistema desde
                                <br />
                                <span class="LetraRoja">
                                    <%# Eval("FechaPublicacion")%>
                                </span>
                                <br />
                                y permanecerá en él hasta
                                <br />
                                <span class="LetraRoja">
                                    <%# Eval("FechaCierre")%>
                                </span>
                                <br />
                                Aplicaciones activas actualmente: 
                                <span class="LetraRoja">
                                    <%# ContarAplicacionesActivas() %>
                                </span>
                            </span>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView> 
        
            <asp:LinqDataSource ID="LinqDataSource_DatosVacante" runat="server" 
                Select="new (ID, Empresa, Carrera, Paise, FechaPublicacion, FechaCierre, Descripcion, Aplicaciones, Puesto)" 
                ContextTypeName="BLL.DataContextClasses.DataClassesDataContext"
                TableName="Vacantes" Where="ID == @ID">
                <WhereParameters>
                    <asp:ControlParameter ControlID="GridView_VacantesActivas" Name="ID" PropertyName="SelectedValue"
                        DefaultValue="0" Type="Int32" />
                </WhereParameters>
            </asp:LinqDataSource>
            <asp:LinqDataSource ID="LinqDataSource_DatosVacanteHabilidades" runat="server" ContextTypeName="BLL.DataContextClasses.DataClassesDataContext"
                Select="new (Habilidade.Descripcion)" TableName="Vacantes_Habilidades" Where="ID_Vacante == @ID_Vacante">
                <WhereParameters>
                    <asp:ControlParameter ControlID="GridView_VacantesActivas" DefaultValue="0" Name="ID_Vacante"
                        PropertyName="SelectedValue" Type="Int32" />
                </WhereParameters>
            </asp:LinqDataSource>
            <asp:LinqDataSource ID="LinqDataSource_DatosVacanteEspecialidades" runat="server"
                ContextTypeName="BLL.DataContextClasses.DataClassesDataContext" Select="new (Postgrado.Descripcion)"
                TableName="Vacantes_Postgrados" Where="ID_Vacante == @ID_Vacante">
                <WhereParameters>
                    <asp:ControlParameter ControlID="GridView_VacantesActivas" DefaultValue="0" Name="ID_Vacante"
                        PropertyName="SelectedValue" Type="Int32" />
                </WhereParameters>
            </asp:LinqDataSource>           
            <br />
        </asp:Panel>
    </asp:Panel>
    
    
<%--   
    -----------------------------------------------------------------------
    -----------------------------------------------------------------------
    -----------------------------------------------------------------------
--%>  
    
    
    <div class="Header2">
            Vacantes cerradas           
            <%--↓↕▲--%>
            <asp:Button ID="Button_MostrarPanelVacantesCerradas" runat="server" Text="▼" 
                onclick="Button_MostrarPanelVacantesCerradas_Click" CausesValidation="False" />
    </div>
    <asp:Panel ID="Panel_VacantesCerradas" runat="server" Visible="false">
        <br />
        <asp:GridView ID="GridView_VacantesCerradas" runat="server" AutoGenerateColumns="False"
            OnSelectedIndexChanged="GridView_VacantesCerradas_SelectedIndexChanged" DataKeyNames="ID">
            <Columns>
                <asp:BoundField DataField="ID" ReadOnly="True" Visible="false" />
                <asp:TemplateField HeaderText="Datos de Vacante">
                    <ItemTemplate>
                        <table>
                            <tbody>
                                <tr>
                                    <td class="center">
                                        <span class="GridViewHeaderLikeH5">Puesto</span>
                                        <br />
                                        <%# EvaluateIfPuestoEqualsNull() %>
                                    </td>
                                    <td class="center">
                                        <span class="GridViewHeaderLikeH5">Carrera</span>
                                        <br />
                                        <%# Eval("Carrera")%>
                                    </td>
                                    <td class="center">
                                        <span class="GridViewHeaderLikeH5">Fecha de Publicación</span>
                                        <br />
                                        <%# Eval("FechaPublicacion")%>
                                    </td>
                                    <td class="center">
                                        <span class="GridViewHeaderLikeH5">Fecha de Cierre</span>
                                        <br />
                                        <%# Eval("FechaCierre")%>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <div class="center">
                            <hr class="DatosVacanteHR" />
                            <%# Eval("Descripcion")%>
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
            <EmptyDataTemplate>
                <asp:Label ID="Label_NoVacantesCerradas" runat="server" SkinID="MensajeError" Text="No hay vacantes cerradas"
                    Visible="true"></asp:Label>
            </EmptyDataTemplate>
        </asp:GridView>
        <br />
        <div class="center">
            <asp:Button ID="Button_ReabrirVacante" runat="server" Text="Reabrir vacante" Enabled="False"
                OnClick="Button_ReabrirVacante_Click" EnableViewState="false" />    
            <br />     
            <asp:Label ID="Label_MensajeErrorReabrirVacante" runat="server" SkinID="MensajeError" 
                Text="Intente reabrir esta vacante luego" Visible="False"></asp:Label>
        </div>
        <br />
    </asp:Panel>
    
    
     
<%--   
    -----------------------------------------------------------------------
    -----------------------------------------------------------------------
    -----------------------------------------------------------------------
--%>  
    
       
    
    
    
    <div class="Header2">
        Publicar vacante           
        <%--↓↕▲--%>
        <asp:Button ID="Button_MostrarPanelNuevaVacante" runat="server" Text="▼" 
            onclick="Button_MostrarPanelNuevaVacante_Click" CausesValidation="False" />
    </div>
    <asp:Panel ID="Panel_NuevaVacante" runat="server" Visible="false">
        <br />
        <table>
            <thead>
            </thead>
            <tbody>
                <tr>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>
                        Puesto:
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox_PuestoVacanteNueva" runat="server" Width="250px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        Carrera:
                    </td>
                    <td>
                        <asp:DropDownList ID="DropDownList_CarrerasVacanteNueva" runat="server" Width="250px" 
                            AppendDataBoundItems="True" DataSourceID="DataSource_Carreras" 
                            DataTextField="Descripcion" DataValueField="ID">
                            <asp:ListItem Value="0" Text="[Seleccione una carrera]"></asp:ListItem>
                        </asp:DropDownList>                     
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="rfv_Carrera" runat="server" 
                            ControlToValidate="DropDownList_CarrerasVacanteNueva" Display="Dynamic" ValidationGroup="ValGroupNuevaVacante"
                            ErrorMessage="Debe seleccionar una carrera">*</asp:RequiredFieldValidator>
                    </td>
                </tr>                
                <tr>
                    <td>
                        Descripcion:
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox_DescripcionVacanteNueva" runat="server" Width="250px" 
                            Height="90px" TextMode="MultiLine"></asp:TextBox>                        
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="rfv_textoDescripcion" runat="server" 
                            ControlToValidate="TextBox_DescripcionVacanteNueva" Display="Dynamic" ValidationGroup="ValGroupNuevaVacante" 
                            ErrorMessage="Debe escribir una descripcion">*</asp:RequiredFieldValidator>                    
                    </td>
                </tr>
                <tr>
                    <td>
                        País:
                    </td>
                    <td>
                        <asp:DropDownList ID="DropDownList_PaisesVacanteNueva" runat="server" 
                            DataSourceID="DataSource_Paises" DataTextField="Descripcion" 
                            DataValueField="ID" Width="250px" AppendDataBoundItems="True">
                            <asp:ListItem Value="0" Text="[Seleccione un país]">                                
                            </asp:ListItem>
                        </asp:DropDownList>                        
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="rfv_dropdownlistPais" runat="server" 
                            ControlToValidate="DropDownList_PaisesVacanteNueva" Display="Dynamic" ValidationGroup="ValGroupNuevaVacante"
                            ErrorMessage="Debe seleccionar un país">*</asp:RequiredFieldValidator>
                    </td>
                </tr>                
                <tr>
                    <td>
                        Habilidades requeridas:
                    </td>
                    <td>
                        <asp:ListBox ID="ListBox_HabilidadesVacanteNueva" runat="server" 
                            DataTextField="Descripcion" DataValueField="ID" Width="250px" Rows="5">
                        </asp:ListBox>
                    </td>
                    <td>
                        <asp:Button ID="Button_EliminarHabilidad" runat="server" Text="Eliminar" 
                            onclick="Button_EliminarHabilidad_Click" />
                    </td>
                </tr>
                <tr>
                    <td>
                        Añadir habilidad:
                    </td>
                    <td>
                        <asp:DropDownList ID="DropDownList_HabilidadesVacanteNueva" runat="server" Width="250px" 
                            AppendDataBoundItems="True" DataSourceID="DataSource_Habilidades" 
                            DataTextField="Descripcion" DataValueField="ID" AutoPostBack="True" 
                            onselectedindexchanged="DropDownList_HabilidadesVacanteNueva_SelectedIndexChanged">
                            <asp:ListItem Value="0" Text="[Seleccione una habilidad]"></asp:ListItem>
                        </asp:DropDownList>                        
                        <div>
                            <asp:Label ID="Label_MensajeErrorHabilidadExistente" runat="server" Text="La vacante ya tiene esta habilidad"
                                SkinID="MensajeError" Visible="False" EnableViewState="false"></asp:Label>
                        </div>
                    </td>
                    <td>
                        <asp:Button ID="Button_AñadirHabilidadVacanteNueva" runat="server" Text="Añadir" 
                            onclick="Button_AñadirHabilidad_Click" Enabled="false" EnableViewState="false" />
                    </td>
                </tr>                
                <tr>
                    <td>
                        Añadir habilidad nueva:
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox_NuevaHabilidadVacanteNueva" runat="server" Width="250px">
                        </asp:TextBox>
                        <br />
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator_NuevaHabilidad" runat="server" 
                            ControlToValidate="TextBox_NuevaHabilidadVacanteNueva" ValidationGroup="ValGroupNuevaHabilidad">
                            Debe escribir una habilidad</asp:RequiredFieldValidator>
                        <div>                            
                            <asp:Label ID="Label_MensajeErrorNuevaHabilidad" runat="server" 
                                Text="No puede agregar esta habilidad" SkinID="MensajeError" Visible="False"
                                EnableViewState="false"></asp:Label>
                        </div>
                    </td>
                    <td>
                        <asp:Button ID="Button_NuevaHabilidadVacanteNueva" runat="server" Text="Añadir" 
                            onclick="Button_NuevaHabilidadVacanteNueva_Click" ValidationGroup="ValGroupNuevaHabilidad" />
                    </td>
                </tr>
                <tr>
                    <td>
                        Postgrados requeridos:
                    </td>
                    <td>
                        <asp:ListBox ID="ListBox_PostgradosVacanteNueva" runat="server" 
                            DataTextField="Descripcion" DataValueField="ID" Width="250px" Rows="5">
                        </asp:ListBox>
                    </td>
                    <td>
                        <asp:Button ID="Button_EliminarPostgradoVacanteNueva" runat="server" Text="Eliminar"                             
                            onclick="Button_EliminarPostgradoVacanteNueva_Click" />
                    </td>
                </tr>
                <tr>
                    <td>
                        Añadir postgrado:
                    </td>
                    <td>
                        <asp:DropDownList ID="DropDownList_PostgradosVacanteNueva" runat="server" Width="250px" 
                            AppendDataBoundItems="True"                            
                            onselectedindexchanged="DropDownList_PostgradosVacanteNueva_SelectedIndexChanged" 
                            DataSourceID="LinqDataSource_Postgrados" DataTextField="Descripcion" 
                            DataValueField="ID" AutoPostBack="True">
                            <asp:ListItem Value="0" Text="[Seleccione un postgrado]"></asp:ListItem>
                        </asp:DropDownList>                        
                        <div>
                            <asp:Label ID="Label_MensajeErrorPostgradoExistente" runat="server" Text="La vacante ya tiene este postgrado"
                                SkinID="MensajeError" Visible="False" EnableViewState="false"></asp:Label>
                        </div>
                    </td>
                    <td>
                        <asp:Button ID="Button_AñadirPostgradoVacanteNueva" runat="server" Text="Añadir"
                            Enabled="false" EnableViewState="false" 
                            onclick="Button_AñadirPostgradoVacanteNueva_Click" />
                    </td>
                </tr>  
            </tbody>
        </table>
        <br />
        <div class="center">
            <asp:Button ID="Button_PublicarVacante" runat="server" Text="Publicar vacante" 
                onclick="Button_PublicarVacante_Click" ValidationGroup="ValGroupNuevaVacante"/>
                <br />
            <asp:Label ID="Label_NotificacionPublicacionVacante" runat="server" SkinID="MensajeError" 
                Visible="false" EnableViewState="false"></asp:Label>
        </div>
        <asp:LinqDataSource ID="DataSource_Habilidades" runat="server" 
            ContextTypeName="BLL.DataContextClasses.DataClassesDataContext" 
            TableName="Habilidades" Select="new (ID, Descripcion)">
        </asp:LinqDataSource>
        <asp:LinqDataSource ID="LinqDataSource_Postgrados" runat="server" 
            ContextTypeName="BLL.DataContextClasses.DataClassesDataContext" 
            Select="new (ID, Descripcion)" TableName="Postgrados">
        </asp:LinqDataSource>
        <asp:LinqDataSource ID="DataSource_Carreras" runat="server" 
            ContextTypeName="BLL.DataContextClasses.DataClassesDataContext" 
            TableName="Carreras" Select="new (ID, Descripcion)">
        </asp:LinqDataSource>
        <asp:LinqDataSource ID="DataSource_Paises" runat="server" 
            ContextTypeName="BLL.DataContextClasses.DataClassesDataContext" 
            Select="new (ID, Descripcion)" TableName="Paises">
        </asp:LinqDataSource>
        <asp:ValidationSummary ID="ValidationSummary_NuevaVacante" runat="server" 
            ValidationGroup="ValGroupNuevaVacante" />
        <br />
    </asp:Panel>
</asp:Content>

